
// 1. Array.from()

// Array构造函数提供了一个from()方法，
// 它可以接收一个伪数组作为参数，返回值为转换后的结果，这个结果是一个真正的数组。
let arr = {
    '0' : '张三',
    '1' : '李四',
    '2' : '王五',
    length : 3
}
let arr1 = Array.from(arr);
console.log(arr1);

// 在Array构造函数中，from()方法还可以接收两个参数，
// 这与数组中的map()方法类似，它用于处理数组中的每个元素并将处理后的结果放入返回的数组中。
let arr2 = {
    '0' : 1,
    '1' : 2,
    '2' : 3,
    length : 3
}
// let arr1 = Array.from(arr2, (i) => {
//     return i * 2;
// });
let arr3 = Array.from(arr2, i => i * 2);
console.log(arr3);

// 2. 数组实例的find()方法

// 在数组实例中，ES6提供了一个find()方法，它用于在数组中查找出第一个符合条件的数组成员。
// 演示查找出i.id值为2的对象
let arr4 = [{
    id : 1,
    name : '张三',
    age : 10
},{
    id : 2,
    name : '李四',
    age : 20
}];
// let result = arr4.find((i, index) => {
//     return i.id === 2;
// });
let result = arr4.find((obj, index) => obj.id === 2);
console.log(result);

// 3. 数组实例的findIndex()方法
// 数组实例提供了一个findIndex()方法，用于在数组中查找出第一个符合条件的数组成员的索引，如果没有找到则返回-1。
// 演示如何查找出数组中大于9的元素的位置
let array = [1,5,8,9,10];
let index = array.findIndex((value, index) => {
    return value > 9;
})
console.log(index);

// 4. 数组实例的includes()方法
// ES6中为数组实例提供了includes()方法来检查某个数组是否包含给定的值，返回一个布尔值，
// true表示包含给定的值，false表示不包含给定的值。
let array1 = ['a', 'b', 'c'];
result = array1.includes('a');
console.log(result);
result = array1.includes('d');
console.log(result);

// 5. 字符串实例的startsWith()方法和endsWith()方法
let str = 'hello world';
result = str.startsWith('hello');
console.log(result);
result = str.endsWith('hello');
console.log(result);

// 6. 字符串实例的repeat()方法
// repeat()方法表示将原字符串重复n次，它返回一个新字符串，并接收一个数值作为参数，表示将字符串重复多少次。
let str1 = 'hello';
console.log(str1.repeat(2));
let ch = 'a';
console.log(ch.repeat(3));
